﻿using System;

namespace SharpSqlAnalyzer.nodes.teradata
{
	// Token: 0x02000385 RID: 901
	public class TCollectColumnIndex : TParseTreeNode
	{
		// Token: 0x17000823 RID: 2083
		// (get) Token: 0x06002586 RID: 9606 RVA: 0x00339CCE File Offset: 0x00337ECE
		// (set) Token: 0x06002585 RID: 9605 RVA: 0x00339CC5 File Offset: 0x00337EC5
		public virtual bool All
		{
			get
			{
				return this.isAll;
			}
			set
			{
				this.isAll = value;
			}
		}

		// Token: 0x17000824 RID: 2084
		// (get) Token: 0x06002588 RID: 9608 RVA: 0x00339CDF File Offset: 0x00337EDF
		// (set) Token: 0x06002587 RID: 9607 RVA: 0x00339CD6 File Offset: 0x00337ED6
		public virtual TObjectName ColumnName
		{
			get
			{
				return this.columnName;
			}
			set
			{
				this.columnName = value;
			}
		}

		// Token: 0x17000825 RID: 2085
		// (get) Token: 0x0600258A RID: 9610 RVA: 0x00339CF0 File Offset: 0x00337EF0
		// (set) Token: 0x06002589 RID: 9609 RVA: 0x00339CE7 File Offset: 0x00337EE7
		public virtual TObjectNameList ColumnNameList
		{
			get
			{
				return this.columnNameList;
			}
			set
			{
				this.columnNameList = value;
			}
		}

		// Token: 0x17000826 RID: 2086
		// (get) Token: 0x0600258C RID: 9612 RVA: 0x00339D01 File Offset: 0x00337F01
		// (set) Token: 0x0600258B RID: 9611 RVA: 0x00339CF8 File Offset: 0x00337EF8
		public virtual TObjectName IndexName
		{
			get
			{
				return this.indexName;
			}
			set
			{
				this.indexName = value;
			}
		}

		// Token: 0x17000827 RID: 2087
		// (get) Token: 0x0600258E RID: 9614 RVA: 0x00339D12 File Offset: 0x00337F12
		// (set) Token: 0x0600258D RID: 9613 RVA: 0x00339D09 File Offset: 0x00337F09
		public virtual bool Column
		{
			get
			{
				return this.isColumn;
			}
			set
			{
				this.isColumn = value;
			}
		}

		// Token: 0x17000828 RID: 2088
		// (get) Token: 0x06002590 RID: 9616 RVA: 0x00339D23 File Offset: 0x00337F23
		// (set) Token: 0x0600258F RID: 9615 RVA: 0x00339D1A File Offset: 0x00337F1A
		public virtual bool Index
		{
			get
			{
				return this.isIndex;
			}
			set
			{
				this.isIndex = value;
			}
		}

		// Token: 0x17000829 RID: 2089
		// (get) Token: 0x06002592 RID: 9618 RVA: 0x00339D34 File Offset: 0x00337F34
		// (set) Token: 0x06002591 RID: 9617 RVA: 0x00339D2B File Offset: 0x00337F2B
		public virtual bool Unique
		{
			get
			{
				return this.isUnique;
			}
			set
			{
				this.isUnique = value;
			}
		}

		// Token: 0x1700082A RID: 2090
		// (get) Token: 0x06002594 RID: 9620 RVA: 0x00339D45 File Offset: 0x00337F45
		// (set) Token: 0x06002593 RID: 9619 RVA: 0x00339D3C File Offset: 0x00337F3C
		public virtual TObjectName OrderByColumnName
		{
			get
			{
				return this.orderByColumnName;
			}
			set
			{
				this.orderByColumnName = value;
			}
		}

		// Token: 0x1700082B RID: 2091
		// (get) Token: 0x06002596 RID: 9622 RVA: 0x00339D56 File Offset: 0x00337F56
		// (set) Token: 0x06002595 RID: 9621 RVA: 0x00339D4D File Offset: 0x00337F4D
		public virtual TObjectName StatisticsName
		{
			get
			{
				return this.statisticsName;
			}
			set
			{
				this.statisticsName = value;
			}
		}

		// Token: 0x06002597 RID: 9623 RVA: 0x00339D60 File Offset: 0x00337F60
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (psql != null && this.ColumnNameList != null && psql.tables.size() > 0 && this.ColumnNameList.size() > 0)
			{
				for (int i = 0; i < this.ColumnNameList.size(); i++)
				{
					psql.tables.getTable(0).ObjectNameReferences.addObjectName(this.ColumnNameList.getObjectName(i));
					psql.tables.getTable(0).LinkedColumns.addObjectName(this.ColumnNameList.getObjectName(i));
					this.ColumnNameList.getObjectName(i).SourceTable = psql.tables.getTable(0);
				}
			}
		}

		// Token: 0x06002598 RID: 9624 RVA: 0x00339E14 File Offset: 0x00338014
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06002599 RID: 9625 RVA: 0x00339E24 File Offset: 0x00338024
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001CD0 RID: 7376
		private bool isIndex;

		// Token: 0x04001CD1 RID: 7377
		private bool isColumn;

		// Token: 0x04001CD2 RID: 7378
		private bool isUnique;

		// Token: 0x04001CD3 RID: 7379
		private bool isAll;

		// Token: 0x04001CD4 RID: 7380
		private TObjectName columnName;

		// Token: 0x04001CD5 RID: 7381
		private TObjectName indexName;

		// Token: 0x04001CD6 RID: 7382
		private TObjectNameList columnNameList;

		// Token: 0x04001CD7 RID: 7383
		private TObjectName orderByColumnName;

		// Token: 0x04001CD8 RID: 7384
		private TObjectName statisticsName;
	}
}
